/*
 * =====================================================================================
 *
 *       Filename:  ICarModel.h
 *
 *    Description:
 *
 *        Version:  1.0
 *        Created:  01/10/2022 10:26:42 AM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  first_name last_name (fl), fl@my-company.com
 *        Company:  my-company
 *
 * =====================================================================================
 */

#pragma once
#include <vector>
#include <iostream>
using std::vector;
using std::string;
class ICarModel {
  public:
    ICarModel(void);
    virtual ~ ICarModel(void);
    void Run();
    void SetSequence(vector < string >* pSeq);
  protected:
    virtual void Start() = 0;
    virtual void Stop() = 0;
    virtual void Alarm() = 0;
    virtual void EngineBoom() = 0;
  private:
    vector < string >* m_pSequence;
};
